﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using GameEngine.Model.Data;
using GameEngine.View.Components;

namespace GameEditor.View.Components
{
    public class IThingEditorMenuViewConstants
    {
        public enum ButtonTags
        {
            OK, CANCEL, 
        }
        //public const string SAVEBUTTON = "SAVEBUTTON";
        //public const string EXITBUTTON = "EXITBUTTON";
        //public const string NEWLEVELBUTTON = "NEWLEVELBUTTON";
        //public const string EDITLEVELBUTTON = "EDITLEVELBUTTON";
        //public const string NEWTHINGTYPEBUTTON = "NEWTHINGTYPEBUTTON";
        //public const string EDITTHINGTYPEBUTTON = "EDITTHINGTYPEBUTTON";
        //public const string NEWVIEWBUTTON = "NEWVIEWBUTTON";
        //public const string EDITVIEWBUTTON = "EDITVIEWTYPEBUTTON";
        //public const string NEWRESOURCEBUTTON = "NEWRESOURCEBUTTON";
        //public const string EDITRESOURCEBUTTON = "EDITRESOURCETYPEBUTTON";
    }
    
    /// <summary>
    /// Tem uma listagem de tipos de elementos
    /// </summary>
    /// <typeparam name="MyWorldView"></typeparam>
    /// <typeparam name="MyItemView"></typeparam>
    /// <typeparam name="MyItemMapView"></typeparam>
    /// <typeparam name="IdType"></typeparam>
    /// <typeparam name="MyBaseUIElementType"></typeparam>
    public interface IThingEditorMenuView<IdType> : IMenuView<IThingEditorMenuViewConstants.ButtonTags>
        where IdType : IComparable<IdType>
    {
        //event Action<string> OnCreateClick;
        //event Action<string> OnEditClick;
        //event Action<string> OnRemoveClick;
        //event Action<IThingTypeVOId<IdType>> OnAddItemToWorldClick;
        //event Action<IThingTypeVOId<IdType>> OnItemTypeClick;
        //event Action OnNewClick;
        Point Position { get; set; }
        ThingTypeVOId Type { get; set; }
        ThingVOId<IdType> Id { get; set; }
        bool EnableControl { get;set; }
    }
}
